home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / ProDOS.p < prev    next >
Encoding:
Text File  |  1990-04-03  |  8.7 KB  |  284 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: ProDOS.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT PRODOS;
  11. INTERFACE
  12. USES TYPES;
  13. CONST
  14.  
  15. { Error Codes }
  16. invalidCallNum = $0001;  { invalid call number }
  17. unclaimedIntErr = $01;  { fatal error - unclaimed interrupt }
  18. badPBlockPtr = $05;  { call pointer out of bounds }
  19. pdosActiveErr = $06;  { ProDOS is active }
  20. pdosBusyErr = $07;  { ProDOS is busy }
  21. vcbUnusable = $0A;  { fatal error - VCB unusable }
  22. fcbUnusable = $0B;  { fatal error - FCB unusable }
  23. badBlockZero = $0C;  { fatal error - block zero allocated illegally }
  24. shdwInterruptErr = $0D;  { fatal error - interrupt occured while I/O shadowing off }
  25. {$IFC UNDEFINED devNotFound }  { device not found }
  26. devNotFound = $10;
  27. {$SETC devNotFound := 0}
  28. {$ENDC}
  29. badDevRefNum = $11;  { invalid device reference number }
  30. osVersionErr = $11;  { Wrong OS version }
  31. badReqCode = $20;  { invalid request code }
  32. intTableFull = $25;  { interrupt table full }
  33. invalidOperation = $26;  { invalid operation }
  34. ioError = $27;  { I/O error }
  35. noDevConnect = $28;  { no device connected }
  36. writeProtectErr = $2B;  { write protect error }
  37. diskSwitchErr = $2E;  { disk switched error }
  38. badPathname = $40;  { invalid pathname syntax }
  39. fcbFullErr = $42;  { FCB full error }
  40. badFileRefNum = $43;  { invalid file reference number }
  41. {$IFC UNDEFINED pathNotFound }  { path not found }
  42. pathNotFound = $44;
  43. {$SETC pathNotFound := 0}
  44. {$ENDC}
  45. volumeNotFound = $45;  { volume not found }
  46. {$IFC UNDEFINED fileNotFound }  { file not found }
  47. fileNotFound = $46;
  48. {$SETC fileNotFound := 0}
  49. {$ENDC}
  50. dupFileName = $47;  { duplicate file name }
  51. volumeFullErr = $48;  { volume full error }
  52. dirFullErr = $49;  { directory full error }
  53. versionErr = $4A;  { version error (incompatible file format) }
  54. {$IFC UNDEFINED badStoreType }  { unsupported (or incorrect) storage type }
  55. badStoreType = $4B;
  56. {$SETC badStoreType := 0}
  57. {$ENDC}
  58. {$IFC UNDEFINED eofEncountered }  { end-of-file encountered }
  59. eofEncountered = $4C;
  60. {$SETC eofEncountered := 0}
  61. {$ENDC}
  62. positionRangeErr = $4D;  { position out of range }
  63. accessErr = $4E;  { access not allowed }
  64. fileOpenErr = $50;  { file is open }
  65. dirDamaged = $51;  { directory structure is damaged }
  66. badVolType = $52;  { unsupported volume type }
  67. {$IFC UNDEFINED paramRangeErr }  { parameter out of range }
  68. paramRangeErr = $53;
  69. {$SETC paramRangeErr := 0}
  70. {$ENDC}
  71. memoryFullErr = $54;  { out of memory }
  72. vcbFullErr = $55;  { VCB full error }
  73. dupVolumeErr = $57;  { duplicate volume error }
  74. notBlkDevErr = $58;  { not a blocked device }
  75. {$IFC UNDEFINED invalidLevel }  { invalid level }
  76. invalidLevel = $59;
  77. {$SETC invalidLevel := 0}
  78. {$ENDC}
  79. blkNumRangeErr = $5A;  { block number out of range }
  80. notSameVolErr = $5B;  { different volumes found on ChangePath call }
  81. notExecSysFile = $5C;  { not an executable system file }
  82. osUnavailable = $5D;  { Operating System/file system not available }
  83. deallocateRamErr = $5E;  { Cannot deallocate /RAM }
  84. {$IFC UNDEFINED stackOverflow }  { Return stack overflow }
  85. stackOverflow = $5F;
  86. {$SETC stackOverflow := 0}
  87. {$ENDC}
  88. dataUnavailable = $60;  { Data unavailable }
  89.  
  90. { Other Constants }
  91. endofDirectory = $0061;
  92. P_READ_ENABLE = $01;
  93. P_WRITE_ENABLE = $02;
  94. P_DESTROY_ENABLE = $80;
  95. P_RENAME_ENABLE = $40;
  96. TYPE
  97. BlockRecPtr = ^BlockRec;
  98. BlockRec = RECORD
  99.     blockDevNum : Integer;
  100.     blockDataBuffer : Ptr;
  101.     blockNum : Longint;
  102. END;
  103. DevNumRecPtr = ^DevNumRec;
  104. DevNumRec = RECORD
  105.     devName : Ptr;
  106.     devNum : Integer;
  107. END;
  108. DInfoRecPtr = ^DInfoRec;
  109. DInfoRec = RECORD
  110.     devNum : Integer;
  111.     devName : Ptr;
  112. END;
  113. DirEntryRecPtr = ^DirEntryRec;
  114. DirEntryRec = RECORD
  115.     refNum : Integer;
  116.     flags : Integer;
  117.     base : Integer;
  118.     displacement : Integer;
  119.     nameBuffer : Ptr;
  120.     entryNum : Integer;
  121.     fileType : Integer;
  122.     endOfFile : Longint;
  123.     blockCount : Longint;
  124.     createTime : TimeRec;
  125.     modTime : TimeRec;
  126.     access : Integer;
  127.     auxType : Longint;
  128.     fileSysID : Integer;
  129. END;
  130. EOFRecPtr = ^EOFRec;
  131. EOFRec = RECORD
  132.     eofRefNum : Integer;
  133.     eofPosition : Longint;
  134. END;
  135. FileIORecPtr = ^FileIORec;
  136. FileIORec = RECORD
  137.     fileRefNum : Integer;
  138.     dataBuffer : Ptr;
  139.     requestCount : Longint;
  140.     transferCount : Longint;
  141. END;
  142. FileRecPtr = ^FileRec;
  143. FileRec = RECORD
  144.     pathname : Ptr;
  145.     fAccess : Integer;
  146.     fileType : Integer;
  147.     auxType : Longint;
  148.     storageType : Integer;
  149.     createDate : Integer;
  150.     createTime : Integer;
  151.     modDate : Integer;
  152.     modTime : Integer;
  153.     blocksUsed : Longint;
  154. END;
  155. FormatRecPtr = ^FormatRec;
  156. FormatRec = RECORD
  157.     devName : Ptr; { device name pointer }
  158.     volName : Ptr; { device name pointer }
  159.     fileSysID : Integer; { file system ID }
  160. END;
  161. EraseDiskRecPtr = ^EraseDiskRec;
  162. EraseDiskRec = RECORD
  163.     devName : Ptr; { device name pointer }
  164.     volName : Ptr; { device name pointer }
  165.     fileSysID : Integer; { file system ID }
  166. END;
  167. InterruptRecPtr = ^InterruptRec;
  168. InterruptRec = RECORD
  169.     intNum : Integer;
  170.     intCode : Ptr;
  171. END;
  172. MarkRecPtr = ^MarkRec;
  173. MarkRec = RECORD
  174.     markRefNum : Integer;
  175.     position : Longint;
  176. END;
  177. NewLineRecPtr = ^NewLineRec;
  178. NewLineRec = RECORD
  179.     newLRefNum : Integer;
  180.     enableMask : Integer;
  181.     newlineChar : Integer;
  182. END;
  183. OpenRecPtr = ^OpenRec;
  184. OpenRec = RECORD
  185.     openRefNum : Integer;
  186.     openPathname : Ptr;
  187.     ioBuffer : Handle;
  188. END;
  189. PathNameRecPtr = ^PathNameRec;
  190. PathNameRec = RECORD
  191.     pathname : Ptr;
  192.     newPathname : Ptr;
  193. END;
  194. PrefixRecPtr = ^PrefixRec;
  195. PrefixRec = RECORD
  196.     prefixNum : Integer;
  197.     prefix : Ptr;
  198. END;
  199. QuitRecPtr = ^QuitRec;
  200. QuitRec = RECORD
  201.     quitPathname : Ptr;
  202.     flags : Integer;
  203. END;
  204. VolumeRecPtr = ^VolumeRec;
  205. VolumeRec = RECORD
  206.     deviceName : Ptr;
  207.     volName : Ptr;
  208.     totalBlocks : Longint;
  209.     freeBlocks : Longint;
  210.     fileSysID : Integer;
  211. END;
  212. PROCEDURE ALLOC_INTERRUPT (VAR pBlockPtr:InterruptRec);
  213. INLINE $0031F4,$E100B022,$8F,'_toolErr';
  214. PROCEDURE CHANGE_PATH (VAR pBlockPtr:PathNameRec);
  215. INLINE $0004F4,$E100B022,$8F,'_toolErr';
  216. PROCEDURE CLEAR_BACKUP_BIT (VAR pBlockPtr:PathNameRec);
  217. INLINE $000BF4,$E100B022,$8F,'_toolErr';
  218. PROCEDURE CLOSEPD (VAR pBlockPtr:FileIORec);
  219. INLINE $0014F4,$E100B022,$8F,'_toolErr';
  220. PROCEDURE CREATE (VAR pBlockPtr:FileRec);
  221. INLINE $0001F4,$E100B022,$8F,'_toolErr';
  222. PROCEDURE D_INFO (VAR pBlockPtr:DInfoRec);
  223. INLINE $002CF4,$E100B022,$8F,'_toolErr';
  224. PROCEDURE DEALLOC_INTERRUPT (VAR pBlockPtr:InterruptRec);
  225. INLINE $0032F4,$E100B022,$8F,'_toolErr';
  226. PROCEDURE DESTROY (VAR pBlockPtr:PathNameRec);
  227. INLINE $0002F4,$E100B022,$8F,'_toolErr';
  228. PROCEDURE ERASE_DISK (VAR pBlockPtr:EraseDiskRec);
  229. INLINE $0025F4,$E100B022,$8F,'_toolErr';
  230. PROCEDURE FLUSH (VAR pBlockPtr:FileIORec);
  231. INLINE $0015F4,$E100B022,$8F,'_toolErr';
  232. PROCEDURE FORMAT (VAR pBlockPtr:FormatRec);
  233. INLINE $0024F4,$E100B022,$8F,'_toolErr';
  234. PROCEDURE GET_BOOT_VOL (VAR pBlockPtr:PathNameRec);
  235. INLINE $0028F4,$E100B022,$8F,'_toolErr';
  236. PROCEDURE GET_DEV_NUM (VAR pBlockPtr:DevNumRec);
  237. INLINE $0020F4,$E100B022,$8F,'_toolErr';
  238. PROCEDURE GET_DIR_ENTRY (VAR pBlockPtr:DirEntryRec);
  239. INLINE $001CF4,$E100B022,$8F,'_toolErr';
  240. PROCEDURE GET_EOF (VAR pBlockPtr:EOFRec);
  241. INLINE $0019F4,$E100B022,$8F,'_toolErr';
  242. PROCEDURE GET_FILE_INFO (VAR pBlockPtr:FileRec);
  243. INLINE $0006F4,$E100B022,$8F,'_toolErr';
  244. PROCEDURE GET_LAST_DEV (VAR pBlockPtr:Integer);
  245. INLINE $0021F4,$E100B022,$03B0,$0000A9,$8F,'_toolErr';
  246. PROCEDURE GET_LEVEL (VAR pBlockPtr:IntPtr);
  247. INLINE $001BF4,$E100B022,$8F,'_toolErr';
  248. PROCEDURE GET_MARK (VAR pBlockPtr:MarkRec);
  249. INLINE $0017F4,$E100B022,$8F,'_toolErr';
  250. PROCEDURE GET_NAME (VAR pBlockPtr:PathNameRec);
  251. INLINE $0027F4,$E100B022,$8F,'_toolErr';
  252. PROCEDURE GET_PREFIX (VAR pBlockPtr:PrefixRec);
  253. INLINE $000AF4,$E100B022,$8F,'_toolErr';
  254. PROCEDURE GET_VERSION (VAR pBlockPtr:Integer);
  255. INLINE $002AF4,$E100B022,$8F,'_toolErr';
  256. PROCEDURE NEWLINE (VAR pBlockPtr:NewLineRec);
  257. INLINE $0011F4,$E100B022,$8F,'_toolErr';
  258. PROCEDURE OPENPD (VAR pBlockPtr:OpenRec);
  259. INLINE $0010F4,$E100B022,$8F,'_toolErr';
  260. PROCEDURE QUIT (VAR pBlockPtr:QuitRec);
  261. INLINE $0029F4,$E100B022,$8F,'_toolErr';
  262. PROCEDURE READ_BLOCK (VAR pBlockPtr:BlockRec);
  263. INLINE $0022F4,$E100B022,$8F,'_toolErr';
  264. PROCEDURE READPD (VAR pBlockPtr:FileIORec);
  265. INLINE $0012F4,$E100B022,$8F,'_toolErr';
  266. PROCEDURE SET_EOF (VAR pBlockPtr:EOFRec);
  267. INLINE $0018F4,$E100B022,$8F,'_toolErr';
  268. PROCEDURE SET_FILE_INFO (VAR pBlockPtr:FileRec);
  269. INLINE $0005F4,$E100B022,$8F,'_toolErr';
  270. PROCEDURE SET_LEVEL (VAR pBlockPtr:Integer);
  271. INLINE $001AF4,$E100B022,$03B0,$0000A9,$8F,'_toolErr';
  272. PROCEDURE SET_MARK (VAR pBlockPtr:MarkRec);
  273. INLINE $0016F4,$E100B022,$8F,'_toolErr';
  274. PROCEDURE SET_PREFIX (VAR pBlockPtr:PrefixRec);
  275. INLINE $0009F4,$E100B022,$8F,'_toolErr';
  276. PROCEDURE VOLUME (VAR pBlockPtr:VolumeRec);
  277. INLINE $0008F4,$E100B022,$8F,'_toolErr';
  278. PROCEDURE WRITE_BLOCK (VAR pBlockPtr:BlockRec);
  279. INLINE $0023F4,$E100B022,$8F,'_toolErr';
  280. PROCEDURE WRITEPD (VAR pBlockPtr:FileIORec);
  281. INLINE $0013F4,$E100B022,$8F,'_toolErr';
  282. IMPLEMENTATION
  283. END.
  284.